package com.xtt.designPattern.future;

/**
 * future模式，当获取数据时，
 * 服务器端先返回代理数据futureData，开启一个线程获取真是数据realData，获取完毕后设给futureData
 * 客户段获取代理数据，此时不一定调用数据，先执行其他操作，当需要获取数据时，getResult,如果此时futureData没有真是数据再等待
 * @author Administrator
 * @description 
 * @createTime 2017年6月22日 下午4:00:38
 */
public class Application {
	public static void main(String[] args) {
		Client client = new Client();
		System.out.println("客户端开始获取数据");
		Data data = client.request();
		System.out.println("客户端获取future数据");
		try {
			System.out.println("客户端其他操作");
			Thread.sleep(1000);
			System.out.println("客户端其他操作完毕");
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		
		try {
			System.out.println("客户端开始调用 future中的数据");
			String result = data.getResult();
			System.out.println("客户端获得:"+result);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}
